Understanding Shannon's Channel Capacity Theorem Noisy Channel Coding & Mutual Information